﻿#region Using Statements

#endregion

namespace DirectZZT.Shared.Network
{
    /// <summary>
    /// Defines the main server interface.
    /// </summary>
    public interface IServer
    {
        /// <summary>
        /// Sends the packet to all connected clients.
        /// </summary>
        /// <param name="packet">The packet to send.</param>
        void SendPacket(ServerPacket packet);
        /// <summary>
        /// Starts the server.
        /// </summary>
        void Start();
        /// <summary>
        /// Makes the server to process one update step.
        /// </summary>
        void Process();
        /// <summary>
        /// Disconnects all clients and shuts down the server.
        /// </summary>
        void Shutdown();
    }
}
